/** @file MainMenuState.h
    @class MainMenuState
    @brief The state which encompasses the main menu
*/

#include "stdafx.h"
#include "State.h"
#include "GameObject.h"
#include "MusicController.h"
#include "MainMenuGUIController.h"

#ifndef _MainMenuState_h_
#define _MainMenuState_h_

class StateManager;
class MainMenuGUIController;
/**
* @brief The state for the Main Menu
*/
class MainMenuState:public State {
public:
	/**
	* @brief Constructor
	*/
	MainMenuState(Ogre::Root* root);

	/**
	* @brief Destructor
	*/
	~MainMenuState();

	/**
	* @brief Initialize the state (current rendering window needed)
	*/
	virtual void initalize(Ogre::RenderWindow* window);

	/**
	* @brief Add a player avatar
	*/
	void addPlayerAvatar(PlayerAvatar* avatar);
protected:


private:
	MusicController* m_mCtrl;
	MainMenuGUIController* m_gCtrl;

	Ogre::Root* r;
	Ogre::RenderWindow* w;
	Ogre::SceneManager* sceneMgr;

	Model* model;
};

#endif // _MAINMENUSTATE_H_